// #include <bits/stdc++.h>
// using namespace std;
// using ll=long long;
// int main()
// {
//     ll m,n;
//     cin>>m>>n;
//     vector<ll> arr(10,0);
//     for(ll i=m;i<=n;i++)
//     {
//         ll temp=i;
//         while(temp)
//         {
//             arr[temp%10]++;
//             temp/=10;
//         }
//     }
//     for(ll x:arr)
//     {
//         cout<<x<<" "; 
//     }
//     cout<<endl;
//     return 0;
// }

#include <bits/stdc++.h>
using namespace std;
using ll=long long;
int n;
int main()
{
    cin>>n;
    vector<vector<int>> arr(n+1,vector<int>(n+1,0));
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>arr[i][j];
        }
    }

    vector<vector<ll>> suffix(n+1,vector<ll>(n+1,0));
    suffix[1][1]=arr[1][1];
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            suffix[i][j]=suffix[i-1][j]+suffix[i][j-1]+arr[i][j]-suffix[i-1][j-1];
        }
    }
    int maxnum=-0x3f3f3f3f;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            for(int x1=i;x1<=n;x1++)
            {
                for(int y1=j;y1<=n;y1++)
                {
                    ll sum=suffix[x1][y1]-suffix[i-1][y1]-suffix[x1][j-1]+suffix[i-1][j-1];
                    if(sum>maxnum)maxnum=sum;
                }
            }
        }
    }
    cout<<maxnum<<endl;
    return 0;
}